﻿using System.Threading.Tasks;
using Xc.DataAccess.Core;
using Xc.DataAccess.Protocoals.WaterMeters.Models.Requests;

namespace Xc.DataAccess.Protocoals.WaterMeters.Models
{
    public interface IDevice
    {
        Task<Result> GetMeterAddress(string deviceId);
        Task<Result> GetMeterData(string deviceId);
        Task<ResultData<OnlineDevice>> Onlines(string devcieidLike = null, int skip = 0, int take = 1000, ShowInvalidateDevcie showInvalidateDevcie = ShowInvalidateDevcie.Hide);
        Task<Result> SetAlarmVolume( SetAlarmVolumeRequest setAlarmVolumeRequest);
        Task<Result> SetCloseValve(SetCloseValveRequest setCloseValveRequest);
        Task<Result> SetMeterIpAddress( SetMeterIpAddressRequest setMeterIpAddressRequest);
        Task<Result> SetMeterMutipleCharge( SetMeterMutipleChargeRequest setMeterMutipleChargeRequest);
        Task<Result> SetMeterUploadInterval( SetMeterUploadIntervalRequest setMeterUploadIntervalRequest);
        Task<Result> SetMeterValue(SetMeterValueRequest setMeterValueRequest);
        Task<Result> SetOpenValve(SetOpenValveRequest setOpenValveRequest);
        Task<Result> SetRestoreFactory(string deviceid);
        Task<Result> SetUserChange( SetUserChangeRequest setUserChangeRequest);
    }
}